package com.ys.nms.module.business.controller.admin.router.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 路由 Response VO")
@Data
@ExcelIgnoreUnannotated
public class RouteRespVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32254")
    @ExcelProperty("ID")
    private Integer routeId;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "更新时间")
    @ExcelProperty("更新时间")
    private LocalDateTime updatedAt;

    @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1856")
    @ExcelProperty("设备ID")
    private Integer deviceId;

    @Schema(description = "端口ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27280")
    @ExcelProperty("端口ID")
    private Integer portId;

    @Schema(description = "SNMP 上下文名称", example = "王五")
    @ExcelProperty("SNMP 上下文名称")
    private String contextName;

    @Schema(description = "接口索引", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("接口索引")
    private Long inetCidrRouteIfIndex;

    @Schema(description = "路由类型（如 1	=直连, 2	=静态, 3	=动态）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("路由类型（如 1	=直连, 2	=静态, 3	=动态）")
    private Integer inetCidrRouteType;

    @Schema(description = "路由协议（如 1	=静态, 2	=RIP, 3	=OSPF, 4	=BGP）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("路由协议（如 1	=静态, 2	=RIP, 3	=OSPF, 4	=BGP）")
    private Integer inetCidrRouteProto;

    @Schema(description = "下一跳 AS 号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("下一跳 AS 号")
    private Integer inetCidrRouteNextHopAS;

    @Schema(description = "路由度量值", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("路由度量值")
    private Integer inetCidrRouteMetric1;

    @Schema(description = "目的地址类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("目的地址类型")
    private String inetCidrRouteDestType;

    @Schema(description = "目的网络地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("目的网络地址")
    private String inetCidrRouteDest;

    @Schema(description = "下一跳地址类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("下一跳地址类型")
    private String inetCidrRouteNextHopType;

    @Schema(description = "下一跳 IP 地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("下一跳 IP 地址")
    private String inetCidrRouteNextHop;

    @Schema(description = "策略路由标识", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("策略路由标识")
    private String inetCidrRoutePolicy;

    @Schema(description = "目的网络前缀长度", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("目的网络前缀长度")
    private Integer inetCidrRoutePfxLen;

}